package br.com.manutencao.managedbeans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;

import br.com.manutencao.entities.Setor;
import br.com.manutencao.repositories.SetorRepository;

@ManagedBean(name = "setor")
@SessionScoped
public class SetorBean implements Serializable {


	private static final long serialVersionUID = 1L;

	SetorRepository repositorio = new SetorRepository();

	private String nome;
	
	private List<Setor> buscaSetores = new ArrayList<Setor>();

	private String descricao;

	private Integer setorId;

	private Setor setor = new Setor();

	private Collection<SelectItem> setores;

	public String salvaSetor() {

		Setor setor = new Setor();
		setor.setNome(nome);
		setor.setDescricao(descricao);

		repositorio.adiciona(setor);

		return "setor-success";
	}

	public String alteraForm() {
		setor = repositorio.buscaPorId(setorId);

		nome = setor.getNome();
		descricao = setor.getDescricao();

		return "setor-form-alt";
	}

	public String alteraAction() {

		setor.setNome(nome);
		setor.setDescricao(descricao);
		repositorio.altera(setor);

		return "setor-success";
	}
	
	public String apagaSetor() {
		Setor setor = new Setor();
		
		setor = repositorio.buscaPorId(setorId);
		
		repositorio.delete(setor);

		return "setor-success-rem";
	}

	// getters and setters

	public String getNome() {
		return nome;
	}

	public Collection<SelectItem> getSetores() {
		Collection<SelectItem> setoresSelect = new ArrayList<SelectItem>();

		Collection<Setor> setores = repositorio.buscaTodos();
		for (Setor setor : setores) {
			SelectItem select = new SelectItem();
			select.setLabel(setor.getNome());
			select.setValue(setor.getId());
			setoresSelect.add(select);
		}

		return setoresSelect;
	}

	public void setSetores(Collection<SelectItem> setores) {
		this.setores = setores;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Integer getSetorId() {
		return setorId;
	}

	public void setSetorId(Integer setorId) {
		this.setorId = setorId;
	}

	public List<Setor> getBuscaSetores() {
		buscaSetores = (List<Setor>) repositorio.buscaTodos();
		return buscaSetores;
	}

	public void setBuscaSetores(List<Setor> buscaSetores) {
		this.buscaSetores = buscaSetores;
	}
	
}
